From 2119392caeff6761a5ae967da1d4e83ab827c634 Mon Sep 17 00:00:00 2001 From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Wed, 6 Nov 2019 12:52:47 -0700 Subject: [PATCH] Correct Bundle Identifier for macos using recommended reverse (#419) DNS format. Build a bundle with the cmake flow on macos. Delete gpsbabelfe script that messed with LD_LIBRARY_PATH and then executed gpsbabelfe-bin. This file was obsolete, and it's existence upset Xcode (entitlement file handling). --- gui/CMakeLists.txt | 27 +++++++++++++++++++++++---- gui/app.pro | 3 +++ gui/gpsbabelfe | 46 ---------------------------------------------- 3 files changed, 26 insertions(+), 50 deletions(-) delete mode 100644 gui/gpsbabelfe diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt index b02affc7a..6f62f7ece 100644 --- a/gui/CMakeLists.txt +++ b/gui/CMakeLists.txt @@ -42,14 +42,17 @@ set(QT_DEFINITIONS ${Qt5Core_DEFINITIONS} ${QT5Gui_DEFINITIONS} ${Qt5Network_DEF list(REMOVE_DUPLICATES QT_DEFINITIONS) message("QT DEFS: \"${QT_DEFINITIONS}\"\n") -set(QT_LIBRARIES ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5WebEngineWidgets_LIBRARIES} ${Qt5WebChannel_LIBRARIES} ${LIBUDEV_LIBRARIES} ${LIBS}) +set(QT_LIBRARIES ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5WebEngineWidgets_LIBRARIES} ${Qt5WebChannel_LIBRARIES}) #list(REMOVE_DUPLICATES QT_LIBRARIES) message("QT LIBS: \"${QT_LIBRARIES}\"\n") include_directories(AFTER SYSTEM ${QT_INCLUDE_DIRS}) add_definitions(${QT_DEFINITIONS} -DHAVE_WEBENGINE) -# mac:LIBS += -framework IOKit -framework CoreFoundation +if (APPLE) + find_library(IOKIT_LIBRARIES IOKit) + find_library(COREFOUNDATION_LIBRARIES CoreFoundation) +endif() if (UNIX AND NOT APPLE) find_package(PkgConfig REQUIRED) @@ -144,8 +147,23 @@ set(HEADERS version_mismatch.h ) -add_executable(${TARGET} ${SOURCES} ${HEADERS} ${RESOURCES}) -set(LIBS ${QT_LIBRARIES} ${LIBUDEV_LIBRARIES}) +if (APPLE) + set(MACOSX_BUNDLE_ICON_FILE appicon.icns) + set(ICON_FILE images/${MACOSX_BUNDLE_ICON_FILE}) + set_source_files_properties(${ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) + + add_executable(${TARGET} MACOSX_BUNDLE ${SOURCES} ${HEADERS} ${ICON_FILE} ${RESOURCES}) + + # Info.plist has not been debugged with the cmake flow, it's a bit different than with the qmake flow. + set_target_properties(${TARGET} PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER org.gpsbabel.${TARGET} + MACOSX_BUNDLE_ICON_FILE ${MACOSX_BUNDLE_ICON_FILE} + ) +else() + add_executable(${TARGET} ${SOURCES} ${HEADERS} ${RESOURCES}) +endif() + +set(LIBS ${QT_LIBRARIES} ${LIBUDEV_LIBRARIES} ${IOKIT_LIBRARIES} ${COREFOUNDATION_LIBRARIES}) list(REMOVE_DUPLICATES LIBS) target_link_libraries(${TARGET} ${LIBS}) @@ -158,3 +176,4 @@ message("Libs are: \"${LnkLibs}\"\n") get_directory_property(IncDirs INCLUDE_DIRECTORIES) message("Include Directores are: \"${IncDirs}\"\n") +add_custom_target(package COMMAND ./package_app DEPENDS ${TARGET}) diff --git a/gui/app.pro b/gui/app.pro index cb1992bc0..06919ccb2 100755 --- a/gui/app.pro +++ b/gui/app.pro @@ -49,6 +49,9 @@ win32-g++ { unix:TARGET=gpsbabelfe mac:TARGET=GPSBabelFE +# Set QMAKE_TARGET_BUNDLE_PREFIX so we get the correct CFBundleIdentifier in Info.plist +darwin:QMAKE_TARGET_BUNDLE_PREFIX=org.gpsbabel + FORMS += aboutui.ui FORMS += advui.ui FORMS += donate.ui diff --git a/gui/gpsbabelfe b/gui/gpsbabelfe deleted file mode 100644 index 28dd8a85d..000000000 --- a/gui/gpsbabelfe +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -# $Id: gpsbabelfe,v 1.2 2009-09-14 14:25:14 robertl Exp $ -# Copyright (C) 2009 S. Khai Mong . -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. -# - - -FollowSymLinks() -{ - fullpath="$1" - while [ -L "$fullpath" ]; do - pathdir=`dirname "$fullpath"` - linktarget=`/bin/ls -l "$fullpath" | sed -e 's/.* -> //'` - d1=`dirname "$linktarget"` - linkdir=`cd "$pathdir" && cd "$d1" && pwd` - linkfile=`basename "$linktarget"` - fullpath=$linkdir/$linkfile - done - echo $fullpath -} - -finalpath=`FollowSymLinks "$0"` -LD_LIBRARY_PATH=`dirname "$finalpath"`:${LD_LIBRARY_PATH} -export LD_LIBRARY_PATH - -if [ -x "${finalpath}-bin" ]; then - #ldd "${finalpath}-bin" - exec "${finalpath}-bin" "$@" -fi -echo "Couldn't find/run gpsbabelfe-bin. Possible installation issues" -exit 1 - -- 2.30.2